package com.example.kaoshi;

import java.util.HashSet;
import java.util.Scanner;

/**
 * Created by Quincy on 2018/10/11.
 */
public class TuYa {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();

        String[] str = s.split(",");
        int len = str.length;
        int[] arr = new int[len];
        for (int i = 0; i < len; i++)
            arr[i] = Integer.parseInt(str[i]);
        System.out.println(beauty_of_array(arr));
    }

    /*
 * 实现代码：Java
     * 该函数用于计算数组中所有连续子序列的美丽值之和
     */
    private static int beauty_of_array(int[] array) {
        // 数组的长度
        int length = array.length;
        // 如果输入的数组不合法，返回0，表示没有美丽值
        if (array == null || length <= 0)
            return 0;

        // 用于统计美丽值的总和
        int beautyValue = 0;

        // 统计所有可能存在的子序列的和
        while (length > 0) {
            beautyValue += beauty_of_array(array, length);
            length--;
        }
        return beautyValue;
    }

    /*
     * 该函数用于统计连续的n个数作为一个子序列可得到的美丽值之和
     */
    private static int beauty_of_array(int array[], int count) {
        // 如果已经把所有的子串都统计完毕，则不用再进行递归，返回0退出
        if (count <= 0)
            return 0;

        // 用于记录美丽值
        int beautyValue = 0;
        // 用于存放数组的长度
        int length = array.length;
        // 用于储存子串的数量
        int num = length - count + 1;
        // 循环时的计数器
        int i = 0, j = 0, k = 1;
        // 用于记录当前子串是否存在相同的其他子串
        boolean exsist = false;

        // 计算子序列个数为count的所有不重复子序列的和
        for (i = 0; i < num; i++) {
            exsist=false;
            // 检查数组中是否存在相同的子串
            for (j = 0; j < i; j++) {
                k = 0;
                if (array[j] == array[i] && j != i) {
                    k = 1;
                    while (k < count && array[j + k] == array[i + k])
                        k++;
                }
//如果存在一个相同的子序列，令exsisit为空，跳出检查循环进行下一个子序列的判断
                if (k == count) {
                    exsist = true;
                    break;
                }
            }

            // 如果子串并没有出现过，则相加
            if (!exsist) {
                beautyValue += getBeautyValue(array, count, i);
            }
        }
        return beautyValue;
    }
    /*
     * 获取下标从startPos开始往后count个数字的和
     * */
    private static int getBeautyValue(int[] array, int count, int startPos) {
//        HashSet<Integer> set = new HashSet<>();
        int value=0;
        for(int i=startPos;i<startPos+count;i++)
            value+=i;
//            set.add(array[i]);
//        for (int i : set)
//            value += i;

        return value;
    }
}
